package com.suchorski.server.resteasy;

import org.jboss.resteasy.core.ResteasyContext;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.keycloak.common.util.ResteasyProvider;

@SuppressWarnings({
        "unchecked", "rawtypes"
})
public class Resteasy4Provider implements ResteasyProvider {

	@Override
	public <R> R getContextData(Class<R> type) {
		return ResteasyProviderFactory.getInstance().getContextData(type);
	}

	@Override
	public void pushDefaultContextObject(Class type, Object instance) {
		ResteasyProviderFactory.getInstance()
		                       .getContextData(org.jboss.resteasy.spi.Dispatcher.class)
		                       .getDefaultContextObjects()
		                       .put(type, instance);
	}

	@Override
	public void pushContext(Class type, Object instance) {
		ResteasyContext.pushContext(type, instance);
	}

	@Override
	public void clearContextData() {
		ResteasyContext.clearContextData();
	}

}